Like everything else, computer use has changed over the years. In the early days, large mainframe computers dominated the industry until the advent of the personal stand-alone computer. Now many businesses and homes have at least one personal stand-alone computer, a PC. A new paradigm of computing, however, has emerged: network-centric computing or distributed computing in which at least two, but more likely many more computers, called clients and servers, are interconnected through a network wherein the software applications used by a client resides on a server. Thus, a server may provide the application or client program or databases used by an end user or by a number of other servers and clients over a network. In many instances and increasingly more so, the network connecting clients and servers is the Internet. The Internet refers to a collection of interconnected computer networks that use the Internet protocol, e.g., TCP/IP, UDP, etc. The world wide web refers to a software management scheme which accesses the Internet with various user agents using hypertext links.
Distributed computing has fundamentally changed the methodology of software developers in writing code for these applications. Rather than writing one massive self-contained application having thousands or millions of lines of code, software developers now select and weave together smaller portions of code, called components, each associated with a particular function that can be reused across multiple applications, all on the world wide web. Current industry architectures for Internet and world wide web applications, moreover, require that business or application logic be separated from presentation logic such that the business logic is solely responsible for providing business data while the presentation logic is solely responsible for driving presentation or the user interface.
Software applications, moreover, are written in programming languages that are independent of the operating system of either the server or the client to access and use a myriad of applications on the Internet. Languages that describe data over the Internet, moreover, include variations of extensible mark-up languages (XML), such as hypertext mark-up language (HTML), wireless mark-up language (WML), etc. JAVA™ is a programming language developed by Sun Microsystems that has blossomed and thrived in the mid to late 1990s coincident with the burgeoning expansion of network computer technology and the world wide web browser technology on the Internet, in part because Java is independent of the operating system of a computer. Java applications can be written on one computer and transferred over a network, such as the Internet, to any processing device having a Java virtual machine regardless of the hardware or software in the receiving machine, consistent with the Write Once, Run Anywhere philosophy of Java software development. Thus, Java applications can be written on one server and then transferred over the web to multiple clients/servers.
A tutorial in definitions as used herein may be helpful. An application or a client program is a software program used by an end user. For instance, a person entering data to schedule employees' work days may be using a scheduling client program or application. A person writing a paper may be using a word processing application. A person creating a visual demonstration may be using a presentation application. A tool is a software application environment that enables a software developer to write further applications in a particular computer environment. IBM's VisualAge, Visual J++, Lotus Bean Machine, Semantic Café, etc. are all tools that allow a programmer to write Java applications. A component is software code that can be reused across multiple applications; in other words, a component is standard software that can be pulled off a server and incorporated into new applications using a tool by software developers. For example, a calendar component may be used in several applications such as a scheduling application, a presentation application, a data base application to calculate employee's vacation and pay, etc. Thus, a software developer using tools to write an application can pull a calendar component off the server for insertion into the application.
A JavaBean is a particular kind of component that can be visually manipulated in a tool and meets a standard protocol of Sun Microsystems for the Java programming language. An Enterprise JavaBean (EJB) is a reusable development component in a client/server environment. The current Enterprise JavaBean specification from Sun Microsystems is a programming model for server side components in Java with support for transactions and security.
The massive self-contained legacy applications having thousands or millions of lines of code, however, may still be very important to businesses and organizations. Indeed, some self-contained programs may contain a business's entire inventory/client list/database or all of the above. The term “legacy applications” refers to existing applications which remain in operation with a business or organization but were developed before the advent of distributed computing and structured programming and its techniques of modularity, coupling, cohesion, etc. Legacy applications written as one large self-contained program do not accommodate change easily. These legacy applications, moreover, are often so critical to the business that these businesses face difficult decisions about the future of such applications and the ability to exploit new network and Internet technologies for remote and distributed access to these critical applications. Interactive legacy applications that have mixed business and presentation logic must be restructured and/or reengineered to be enabled as web applications. Separating the business logic from the user interface logic, however, is not always practicable to deploy applications onto the web with minimal intervention and testing. Some legacy applications, moreover, have thousands of different user interface screens. Such an effort to convert the user interface display files to existing web pages would take extraordinary effort and time.
Other solutions to implement legacy applications, and particularly to display files and user interfaces on the Internet may use a screen-scraping technique which converts legacy display data streams at runtime or “on the fly” to a web-based language, such as HTML, or other language. The HTML converted screens are then displayed on a browser. This technique involves converting the datastream as it is being written to the device. When the application logic writes a record format during runtime, the work station data manager creates a legacy datastream. The dynamic data from the application is merged with the compiled display file object on disk and the result is a legacy application data stream containing all the attributes, static text and dynamic data for that record format. The normalized legacy application datastream is intercepted and converted just prior to displaying it on the end user's workstation or Web browser.
Converting the legacy display datastream at runtime, however, is slow and significantly compromises performance of the application. Such conversion, moreover, does not give the user the capability of integrating or changing the user interface according the needs of the customers or to seamlessly weave the legacy application display files with new web or other network applications. Quite simply, mere conversion of legacy datastream display files does not provide the capability to enhance the effectiveness of the user interface of the application when the application runs on the Internet.
There is thus a need in the industry to convert display pages from existing legacy applications to dynamic modern Web browser user interfaces during development so that the legacy applications can be accessed on the Internet or other computer communication networks without having to create an alternative web browser user interface for the existing application and without having to manually create every single web page from scratch, trying carefully to maintain the functionality of the original display file user interface.
Java™ is a trademark of Sun Microsystems, Inc., Windows™ is a trademark of Microsoft, Inc. and Zseries™, Xseries™, Pseries™, Iseries™, AS/400™, WebSphere Studio, and WebFacing Tool™ are trademarks of IBM. When used throughout the patent, the trademark will be designated as having an initial capital letter.